package com.version1.diabeco;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageButton;
import android.widget.LinearLayout;

import com.version1.diabeco.data.ajustes.perfilusuario.PerfilUsuarioDaoImpl;
import com.version1.diabeco.model.ajustes.perfilusuario.PerfilUsuario;
import com.version1.diabeco.service.AlarmaService;
import com.version1.diabeco.service.LocationService;
import com.version1.diabeco.ui.actividadfisica.ActivityListaRegistrosActividadFisica;
import com.version1.diabeco.ui.ajustes.ActivityAjustes;
import com.version1.diabeco.ui.comida.ActivityListaRegistrosComidas;
import com.version1.diabeco.ui.glucosa.ActivityListaRegistrosGlucosa;
import com.version1.diabeco.ui.mapas.ActivityMapas;
import com.version1.diabeco.ui.medicacion.ActivityListaRegistrosMedicacion;
import com.version1.diabeco.ui.peso.ActivityListaRegistrosPeso;
import com.version1.diabeco.ui.wizard.ActivityWizardPaso1;

public class ActivityMain extends Activity {
        
        public static final DateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
        public static final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm", Locale.ENGLISH);
    	public final static int REQUEST_CODE_WIZARD_PASO1 = 1111;
    	public final static int RESULT_CODE_WIZARD_BTN_PREVIO = 4;
        public final static String TIPO_INSULINA = "Insulina";
        public final static String TIPO_DIABETES1 = "Tipo 1";
    	public static final String UM_KGS = "Kgs";
    	public static final String UM_MTS = "Mts";
    	public static final String SEXO_HOMBRE = "Hombre"; 
        
        //Declaraciones
        private PerfilUsuario objPerfilUsuario;
        ImageButton ibtnPeso;
        LinearLayout linearInicial, linearPeso;

        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                //Iniciamos el Wizard Solo si es la primera vez que se ejecuta
        		if(getFirstRun()==true){
        			Intent intent = new Intent(this, ActivityWizardPaso1.class);
        			startActivityForResult(intent, REQUEST_CODE_WIZARD_PASO1);		
        		}
        		
              Intent alarmaService = new Intent(this, AlarmaService.class);
              startService(alarmaService);

                Intent locationService = new Intent(this, LocationService.class);
                startService(locationService);
                
                //Obtenemos los elementos de la Pantalla 
                ibtnPeso      = (ImageButton) findViewById(R.id.ibtnPeso);
                linearInicial = (LinearLayout) findViewById(R.id.linearInicial);
                linearPeso    = (LinearLayout) findViewById(R.id.linearPeso);
                
                //Cargamos el Perfil de Usuario de la Base de Datos
                objPerfilUsuario = PerfilUsuarioDaoImpl.getInstance(this).selectUsuarioActivo();
                
                //Si es Diabetes Tipo 1 ocultamos el Boton de Peso
                if (objPerfilUsuario!=null) {
                        if (objPerfilUsuario.getTipoDiabetes().equals(TIPO_DIABETES1)) {
                                ibtnPeso.setVisibility(View.GONE);
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params = linearInicial.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params.height = 125;
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params2 = linearPeso.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params2.height = 125;
                        }       else {
                                ibtnPeso.setVisibility(View.VISIBLE);   
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params = linearInicial.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params.height = params.WRAP_CONTENT;
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params2 = linearPeso.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params2.height = params.WRAP_CONTENT;                           
                        }
                }
                
        }

        
        @Override
        protected void onResume() {
                super.onResume();
                
                //Obtenemos los elementos de la Pantalla 
                ibtnPeso      = (ImageButton) findViewById(R.id.ibtnPeso);
                linearInicial = (LinearLayout) findViewById(R.id.linearInicial);
                linearPeso    = (LinearLayout) findViewById(R.id.linearPeso);
                
                //Cargamos el Perfil de Usuario de la Base de Datos
                objPerfilUsuario = PerfilUsuarioDaoImpl.getInstance(this).selectUsuarioActivo();
                
                //Si es Diabetes Tipo 1 ocultamos el Boton de Peso
                if (objPerfilUsuario!=null) {
                        if (objPerfilUsuario.getTipoDiabetes().equals(TIPO_DIABETES1)) {
                                ibtnPeso.setVisibility(View.GONE);
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params = linearInicial.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params.height = 125;
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params2 = linearPeso.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params2.height = 130;
                        }       else {
                                ibtnPeso.setVisibility(View.VISIBLE);   
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params = linearInicial.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params.height = params.WRAP_CONTENT;
                                // Gets the layout params that will allow you to resize the layout
                                LayoutParams params2 = linearPeso.getLayoutParams();
                                // Changes the height and width to the specified *pixels*
                                params2.height = params.WRAP_CONTENT;                                   
                        }
                }
        };
        

                
//      @Override
//      public boolean onCreateOptionsMenu(Menu menu) {
//              // Inflate the menu; this adds items to the action bar if it is present.
//              getMenuInflater().inflate(R.menu.activity_main, menu);
//              return true;
//      }

    	
    	@Override
    	public void onActivityResult(int requestCode, int resultCode, Intent data) {
    		super.onActivityResult(requestCode, resultCode, data);
    		
    		if (requestCode == REQUEST_CODE_WIZARD_PASO1) {
    			switch (resultCode) {
    			case RESULT_CANCELED:
    				this.finish();
    				break;
    			case RESULT_CODE_WIZARD_BTN_PREVIO:
    				this.finish();
    				break;
    			default:
    				break;
    			}
    	
    		} 
    	}
        
        /** Se llama al hacer click en "Contacto" */
        public void sendMsgContacto(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityContacto.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        
        
        /** Se llama al hacer click en "Ayuda" */
        public void sendMsgAyuda(View view) {
                
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityAyuda.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }       
        
        
        /** Se llama al hacer click en "Ayuda" */
        public void generarPDF(View view) {
                
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityGenerarPDF.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        

        /** Se llama al hacer click en "Medicion de Glucosa" */
        public void sendMsgMedicion(View view) {
                                
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityListaRegistrosGlucosa.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        
        
        /** Se llama al hacer click en "Actividad Fisica" */
        public void sendMsgActividadFisica(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityListaRegistrosActividadFisica.class); //AddLogActivity.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        

        /** Se llama al hacer click en "Comida" */
        public void sendMsgComida(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityListaRegistrosComidas.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        
        /** Se llama al hacer click en "Medicacion" */
        public void sendMsgMedicacion(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityListaRegistrosMedicacion.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }       
        
        /** Se llama al hacer click en "Peso" */
        public void sendMsgPeso(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityListaRegistrosPeso.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }       
        
        /** Se llama al hacer click en "Ajustes" */
        public void sendMsgAjustes(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityAjustes.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        
        
        /** Se llama al hacer click en "Mapas" */
                public void sendMsgMapas(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityMapas.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        
        /** Se llama al hacer click en "Informes" */
        public void sendMsgInformes(View view) {
                //Creamos el Intent
                Intent intent = new Intent(this, ActivityElegirInforme.class);
                //Iniciamos la nueva actividad
                startActivity(intent);
        }
        
        public boolean getFirstRun() {
    		//Obtenemos las Preference en modo privado
    		Context mContext = this.getApplicationContext();
    		SharedPreferences diabecoPrefs = mContext.getSharedPreferences("DiabeCo", Context.MODE_PRIVATE);
    		return diabecoPrefs.getBoolean("FirstRun", true);
    	}        
}